Initiating communications with web page visitors and known contacts

ABSTRACT

Methods and apparatus, including computer program products, implementing and using techniques for initiating communication between two users among several users while at least one of the two users is browsing a web page. User information is collected about each user among the several users. Page information is collected about what web page each user among the several users is browsing. A portion of the user information and page information for a first user and a second user is shared between the first user and the second user when a predetermined criterion is met, and request by the first user to initiate communication with the second user is processed.

BACKGROUND

This invention relates to searching and browsing a computer networksystem. Computer users increasingly use web browsers to navigatedocument collections, for example, on the World Wide Web on theInternet, or on various types of intranets in order to find information,or simply as a serendipitous way of spending time.

Generally speaking, each document that is accessible on the World WideWeb or on an intranet has an address, or Uniform Resource Locator (URL),in the form “http://www.server.net/directory/file.html”. In thisnotation, the “http:” specifies the protocol by which the document is tobe delivered, in this case the “HyperText Transport Protocol.” The“www.server.net” specifies the name of a computer, server, or group ofcomputers on which the document resides; “directory” refers to adirectory or folder on the server in which the document resides; and“file.html” specifies the name of a file with contents that the user canultimately view in her web browser.

Web browsing is typically a solitary activity, in many ways similar toreading a book or a newspaper. Often, there is a desire among users todiscuss what they view or read on web pages with other users. There arecurrently several ways in which this can be accomplished. For example,many web pages provide so-called message boards. A message board istypically a designated portion of a web page, where users can postcomments or discuss topics that are relevant to the contents of the webpage. Message boards typically have different physical locations ondifferent web pages and can thus sometimes be difficult for users tofind. Some message boards allow the users to post comments anonymously,whereas other message boards require the users to register and obtainunique user IDs and passwords before allowing the user to post commentsto the message board. Furthermore, message boards are not synchronous,that is, users typically cannot have a direct, real time dialog witheach other by posting messages on message boards.

In order to achieve synchronous communication between users, specialapplications known as instant messaging (IM) applications can be used.IM enables real-time communication between two or more people, typicallybased on typed text. The text is conveyed between the user's computersthrough a network, such as the Internet. IM requires the use of a clientprogram that uses an IM service. In most IM applications, a user createsa contact list, and can only communicate with the people who have beenadded to the contact list. Most IM services also offer a presencefeature that indicates what people on the user's contact list arecurrently online and available to chat (that is, send and receivemessages). Most instant messaging applications also include the abilityto set a status message, roughly analogous to the message on a telephoneanswering machine.

SUMMARY

In general, in one aspect, methods and apparatus are provided, includingcomputer program products, implementing and using techniques forinitiating communication between two users among several users while atleast one of the two users is browsing a web page. User information iscollected about each user among the several users. Page information iscollected about what web page each user among the several users isbrowsing. A portion of the user information and page information for afirst user and a second user is shared between the first user and thesecond user when a predetermined criterion is met, and request by thefirst user to initiate communication with the second user is processed

Various embodiments can include one or more of the following features.Collecting user information can include collecting one or more of: auser name, an Internet Protocol address, and an email address.Collecting page information can include collecting a name of a UniformResource Locator for the web page. Collecting user information andcollecting page information can be done using a toolbar installed in aweb browser in each user's computer. The users can correspond to allusers using the toolbar in their respective web browsers.

The predetermined criterion can be that the first user and the seconduser are simultaneously browsing one of: a same web site, a samesub-site of a web site, or a same web page of a web site. Thepredetermined criterion can be that the first user and the second userhave given permission to contact each other. Sharing a portion of theuser information and the page information can include one or more of:providing an identifier of the first user in the second user's webbrowser and providing an identifier of the second user in the firstuser's web browser.

The identifier of the first user can be provided in a drop-down menu ofa toolbar installed in the second user's web browser and the identifierof the second user can be provided in a drop-down menu of a toolbarinstalled in the first user's web browser. Sharing a portion of the userinformation and the page information can further include one or more of:providing a mechanism for the first user to send an instant message tothe second user, and providing a mechanism for the second user to sendan instant message to the first user.

Information about what web pages each user has bookmarked can becollected. An indication can be provided to the first user when thefirst user is actively browsing a web page bookmarked by the seconduser, and an indication can be provided to the second user when thesecond user is actively browsing a web page bookmarked by the first user

Various embodiments can include one or more of the following advantages.The solitary aspect of web browsing can be reduced by allowing users tosynchronously discuss a web site with other people. These other peoplecan be friends of the user or unknown people who are simultaneouslybrowsing the same web page as the user, or who have bookmarked the webpage in the past. Users can invite other users to co-browse a web sitetogether. Users can serendipitously meet new people with similarinterests, as indicated by the fact that they are browsing the same webpage or have bookmarked the web page in the past, and thereby expandtheir social network. Users can set status messages to let other usersknow whether they are available for online interactions or prefer to beleft alone. There is no need to remember the location of individualmessage boards, nor to sign into individual message boards with aspecific user ID and a password. Online conversations with other users,for example, while co-browsing a web page can be saved locally orremotely for future reference. Users can contact other users whileremaining in their web browser (i.e., without having to switch to aseparate application). Users can be contacted by other users even ifthey are not actively browsing a web page.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows a schematic visualization of tracked information inaccordance with one embodiment.

FIG. 2 shows a process for connecting users browsing web pages inaccordance with one embodiment.

FIG. 3 shows an example of a web page being displayed in a web browserin accordance with one embodiment.

FIG. 4 shows an example of a web page and a toolbar in accordance withone embodiment.

FIG. 5 shows an example of a web page and a sub-menu of a toolbar inaccordance with one embodiment.

FIG. 6 shows an example of a web page and a sub-menu of a toolbar inaccordance with one embodiment.

FIG. 7 shows an example of two users discussing a web page in accordancewith one embodiment.

FIG. 8 shows an example of a user being contacted by another user inaccordance with one embodiment.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

As was described above, the various embodiments described herein providemethods and apparatus that enable a more interactive web browsingexperience for users, by allowing the users to contact and interact withother users on a voluntary basis while browsing a web page, for example,to discuss the contents or any other aspects of the web page in realtime. As will be described in further detail below, in variousembodiments, this is enabled by users agreeing to collecting and sharinginformation about what web pages or web sites the users are currentlybrowsing, or what web pages or web sites the users have bookmarked inthe past. This information can be collected through several mechanisms.In one embodiment, which will be described below, the information iscollected by a toolbar installed in a web browser. As will also be seenbelow, the toolbar can be used, for example, to display whether otherusers who have given permission to collecting and sharing informationare currently looking at the same web page or web site, or whether otherusers have previously bookmarked the web page or web site. In variousembodiments, these users' online identities can also be displayed, atthe request of the users. In some embodiments, by selecting a useridentity that is displayed in the toolbar, the selecting user caninitiate communication with the selected user if the selected user isinterested in such requests, for example, in the format of instantmessages, and ask the selected user for advice, or start a discussionabout the web page or web site that the selecting user is currentlyviewing, thus making the browsing experience much more interactive thanconventional web browsing.

In accordance with various embodiments of the invention, differentcategories of information can be tracked. FIG. 1 shows a schematicvisualization of the tracked information in the form of athree-dimensional cube (100) that illustrates the tracked informationalong different dimensions in accordance with one embodiment of theinvention. It should however be clear that this three-dimensional cubecan be generalized to an N-dimensional space with any number ofdimensions that can be useful in order to enhance the browsingexperience of the user, as will be described below.

As can be seen in FIG. 1, a first dimension of the cube (100) tracks afriendship status, and has the possible values of the other user beingknown or unknown. In some embodiments, known other users are the usersthat exist in a person's contact list and with whom the user has hadsome kind of previous interaction, and unknown users are people that arenot in the user's contact list. It should be noted that theknown/unknown user values are merely examples of friendship status. Insome implementations, there can be various other categories between auser being known or unknown, for example, based on a frequency ofcontact between the users. For example, users can be categorized as“well-known” or “semi-known” based on the number of user interactionsthat have taken place with the user.

A second dimension of the cube (100) tracks a current status of theusers, and has the possible values of a user being on the page or notbeing on the page. In this context, being on the page means that theuser is actively browsing the web page or that the web page is in focus(that is, the web page is being displayed, but the user is not activelyinteracting with the web page), and not being on the page means that theuser is not actively browsing the web page or that the page is not infocus. However, it should be realized that in some embodiments, browsingthe web page can mean browsing the same web site, or a same subsectionof a particular web site. For example, when a web site contains severalthousands of web pages, it is unlikely that two users will be browsingthe exact same one page at the exact same time. In such a situation, itcan be useful to expand the selection of users to users who are withinthe same subsection of the web site. Being on a page can also meanhaving the page open in a web browser, even if the user is not activelylooking at the page, as a user may be switching back and forth betweenmultiple web pages displayed in multiple browser windows or tabs on hisor her computer.

A third dimension of the cube (100) tracks a bookmark status, and hasthe possible values of the user having bookmarked the page previously ornot having bookmarked the page previously. In most case, a user onlybookmarks a web page if the web page is of special interest to him.Thus, knowing whether a user has bookmarked a web page is a goodindicator as to whether the user has some special knowledge and/orinterest in that particular web page.

As can be seen in FIG. 1, tracking these three dimensions, where eachdimension has two possible values, leads to eight possiblesub-combinations, illustrated by the smaller cubes in FIG. 1. Thesepossible sub-combinations are:

-   -   1. Unknown users who are on the page and who have bookmarked the        page.    -   2. Unknown users who are not on the page and who have bookmarked        the page.    -   3. Unknown users who are on the page and who have not bookmarked        the page.    -   4. Unknown users who are not on the page and who have not        bookmarked the page.    -   5. Known users who are on the page and who have bookmarked the        page.    -   6. Known users who are not on the page and who have bookmarked        the page.    -   7. Known users who are on the page and who have not bookmarked        the page.    -   8. Known users who are not on the page and who have not        bookmarked the page.

As the skilled person realizes, some of these combinations are lessinteresting than others from an interaction point of view. For example,as can be seen in sub-combination (4) above, an unknown user who iscurrently not on the web page and who has not bookmarked the page isprobably not likely to be very interested in the web page or will not beable to provide very much information about the contents of the page. Onthe other hand, as can be seen in sub-combination (5) above, a friendwho is currently on the page and who has also bookmarked the page, isprobably much more likely to be interested in discussing the contents ofthe web page.

Expressed differently, in each of the three dimensions, there is one“desirable” value that can strengthen the case for initiating contact,and one value that may not strengthen the case for initiating contact.The desirable conditions are: known user, on the page, and bookmarkedthe page. The less desirable conditions are: unknown user, not on page,and not bookmarked page. Each desirable condition can be assigned adesirability score, such as one point, whereas undesirable conditionscan be assigned zero points. Usually, a desirable condition is morelikely to occur alone than in combination with other desirableconditions. Consequently, the eight sub-combinations above can beregrouped into three main cases, which each have a desirability score ofat least one, that is, a desirable condition happens by itself or incombination with other desirable conditions, and which are likely to beuseful for interaction purposes. These cases are:

-   -   (A) Known or unknown users who are currently on the same web        page.    -   (B) Known or unknown users who have bookmarked the same web page        in the past.    -   (C) Known users (i.e., friends), regardless of their current        status or bookmarking status.

As was described above, in some embodiments, these categories ofinformation are collected using a toolbar. Toolbars for web browsers arewell known to those of ordinary skill in the art. One provider of acommonly used toolbar is Google Inc. of Mountain View, Calif. Generallytoolbars provide additional functionality to what is supplied by regularweb browsers. Often, the additional functionality is related touser-specific features, such as checking the user's personal email,storing personal bookmarks corresponding to web pages, filling in formswith personal information, and so on. In order to accomplish thesefunctionalities, a user typically has to register and enter some type ofpersonal or identifying information when downloading and installing thetoolbar. In exchange for the additional functionality that is given bythe toolbar, the toolbar also typically collects and sends limitedinformation to the provider of the toolbar. Such information caninclude, for example, the IP address of the computer on which thetoolbar is installed, and what web page or web site a user is accessing,as described above. As will be described in further detail below,collecting this information with the user's consent makes it possiblefor a toolbar provider to know, at any given instant, what web pages orweb sites all their toolbar users are browsing. This information canfurther be compared to that of other toolbar users and be used toconnect users that may be interested in interacting with each other, forexample, in accordance with the use cases (A)-(C), described above.

An exemplary process (200) for connecting users in accordance with oneembodiment will now be described with reference to FIG. 2. As can beseen in FIG. 2, the process (200) starts with a user opening a webbrowser on his or her computer and signing into the toolbar with a UserID and password, or some other type of authenticating mechanism (step202), for example, some kind of biometric authentication, depending onthe capabilities of the user's computer. The user may, optionally,select what type of information he would like to shared with otherusers. This may span the full range from remaining completely anonymousand sharing no information at all about the user's web browsing, tosharing information with only a select group of individuals, or tosharing all web browsing information with all other users. Thisselection can be made each time the user signs into the toolbar, or canbe saved as a permanent selection to be automatically applied every timethe user signs into the toolbar.

Next, the user selects a web page or web site to browse (step 204), forexample, by typing in the address of the web page in the web browser'saddress field, or by selecting the page from a list of previouslybookmarked pages in the web browser or in the toolbar. FIG. 3 shows anexample of a web page (300) being displayed in a web browser. As can beseen, the toolbar (302) can contain a search box (304) for doing websearches, a button (306) that a user can click to communicate with otherusers about the web page (300), as will be described in further detailbelow, and a status indicator (308) showing that the user has signedinto the toolbar (302). It should be noted that typically the toolbar(302) would contain several other functions, which for clarity reasonshave been omitted from the drawings.

Upon loading the web page (300) in the browser and with the user'sconsent, the toolbar (302) collects information about the web page (300)(step 206) and transmits the information to the toolbar provider alongwith the user information (step 208). The toolbar provider, which isreceiving similar information from all other users that have signed intotheir respective toolbars (302) and have agreed to have web browsinginformation collected, then checks whether there are any other usersthat fulfill the contact criteria outlined above and can display theseother users' identities (or a subset of them) to the user (step 210).That is, the toolbar provider checks whether there are: (A) any known orunknown users who are signed into the toolbar and who are currentlybrowsing the same web page, (B) any known or unknown users who aresigned into the toolbar and who have bookmarked the same web page in thepast, or (C) any known users (i.e., friends) who are signed into thetoolbar, regardless of their current status or bookmarking status. Insome embodiments the toolbar provider also checks the user's status, forexample, “available,” “idle,” “busy,” “unavailable,” and so on, anddisplays only the identities of users that have a status other than“unavailable.”

FIGS. 4-6 show how these users are displayed in accordance with oneembodiment. As can be seen in FIG. 4, a drop-down menu (402) appearswhen the user clicks the button (306). In the embodiment shown in FIG.4, the drop-down menu (402) is divided into “Contacts” (that is, knownusers), and “Visitors” (that is, unknown users). As can be seen in FIG.5, when the user selects the “Contacts” category, a sub-menu (502)appears that lists the identified users in the respective category. Thesub-menu (502) in FIG. 5 contains three known users, that is, GtalkFriend A, Gtalk Friend B and Gtalk Friend C. As can be seen in FIG. 5,Gtalk Friend A has a star next to his identifier. The star indicatesthat Gtalk Friend A has bookmarked the web page. This can serve as anindicator to the user that Gtalk Friend A is more interested and/or hasmore knowledge about the contents of the page than Gtalk Friend B andGtalk Friend C, respectively. In some embodiments, the order in whichthe known and unknown users is displayed can be based on some kind ofuser customizable criteria, such as bookmark status, number of visits tothe web page, the frequency of contact with the user, and so on. Anycombination of these and other factors can be used to organize users, ascan be envisioned by those of ordinary skill in the art.

FIG. 6 shows an embodiment of when the user selects the “Visitors”category in the drop-down menu (402). As can be seen in FIG. 6, asub-menu (602) appears which lists a group of Page Visitors, that is,other unknown users who are currently browsing the same web page, and agroup of Bookmarkers, that is, other unknown users who have bookmarkedthe web page and who are currently signed into the toolbar but who maynot be currently browsing the same web page. Similarly to FIG. 5, PageVisitor D has a star displayed adjacent to his identifier, whichindicates that he has bookmarked the web page. For the same reason, allthe Bookmarkers have stars displayed adjacent to their identifiers.

As can be seen in FIGS. 4-6, only three users are displayed in eachcategory. This is due to a “user selection mechanism” that exists insome embodiments. For example, if a user browses a popular news page,such as www.cnn.com, it is very likely that there would be a largenumber of known and/or unknown users who are simultaneously browsing thesame web page. Displaying all of these other users in the sub-menus(502; 602) could be impractical, and thus it is beneficial to performsome kind of selection of a subset of the other users to be displayed.This selection or filtering can be based on a number of factors, such asgeographical proximity to the user, how many times the other users havevisited the same page, how long time the other users have spent browsingthe page, sub site proximity (i.e., when two users look at two differentpages of the same multi-page article) and so on. Each of these criteriacan serve as an indicator that the other users have more insight orknowledge about a particular page, under various circumstances. In someembodiments, the selection is done automatically by the toolbarprovider; whereas in other embodiments the user can configure theselection mechanism in accordance with their own preferences, forexample, so that only local users are displayed. In some embodiments,the user can also configure how many other users of each category shouldbe displayed in the sub-menus (502; 602).

Next the user decides whether to contact another user (step 212). If theuser does not wish to contact any other user to discuss the web page,the process returns to step 204, and the user continues to browse thesame web page or another web page. If the user would like to contactanother user, he selects one of the displayed users in the “Contacts” or“Visitors” categories that have given prior permission to be contacted(step 214), for example, by clicking on the other user's identifier inthe sub-menu (502; 602). As a result, communication is established withthe selected other user (step 216), which ends the process. Thecommunication can take many shapes. For example, as can be seen in FIG.7, an instant messaging window (702) opens up, in which the user cantype and send an instant text message to the selected user. In someembodiments the instant messaging window (702) is embedded in the webbrowser in a specific location, whereas in other embodiments the instantmessaging window (702) can be a separate window whose location can bemoved to an arbitrary location on the screen by the user. The exampleshown in FIG. 7 shows the user contacting “Page Visitor E” and sendingthe message “Hey, this page is cool! Does the place live up to it?”Assuming that Page Visitor E is familiar with “The Jazz Café” featuredon the web page, the user is likely to get an informative and helpfulanswer. Should that not be the case, the user can simply select adifferent user from one of the sub-menus (502; 602) and establishcommunication with that other user in a similar manner to what wasdescribed above, as long as other user has given permission to becontacted.

FIG. 8 shows an exemplary screenshot (800) of what a user can see on thescreen when she is being contacted by another user. As can be seen inFIG. 8, the user is contacted by two other users, and each contactresults in an instant message window being displayed on the user'sscreen. The first user “Missy Reynolds” contact request shows up inwindow 802. As can be seen in FIG. 8, “Missy Reynolds” is one of thepeople in the user's contact list (804), that is, a known user. In thewindow (802), Missy's message shows up along with an invitation to joinMissy on the web. The user can choose “Accept” or “Decline” by clickingone of two different buttons, and can also type a reply message back toMissy in the lower part of the window (802). In some embodiments,clicking the “Accept” button launches a web browser displaying the samepage as Missy's web browser and having an embedded instant messagingwindow as shown above with respect to FIG. 7, and the conversation withMissy can continue in that window.

The other message, from “Jim,” is displayed in window (806). As can beseen in FIG. 8, Jim is not in the user's contact list (804), thus, he isan unknown user, which is indicated by the text “toolbar guest” in theheader of the window (806). Furthermore, as can be seen in FIG. 8, theuser is contacted by Jim, although the user is not currently browsingany web page. This is due to the fact that Jim is browsing a web pagethat the user has previously bookmarked, thus, from Jim's point of viewthe user is in category (B) above, that is, known or unknown users whohave bookmarked the web page. In the event that the user who is beingcontacted is already browsing a web page, the user can be contacteddirectly in the browser with the same kind of browser-embedded instantmessaging window that was described above with respect to FIG. 7.

In some embodiments, when a user who is contacted clicks the “Accept”button, the control of the web browser is temporarily relinquished bythe user who is contacted. That is, the contacted user's browser becomesessentially a “read-only” copy of what the selecting user is looking at.Pages might scroll when the selecting user scrolls them, text fields mayfill up with text entered by the selecting user, highlighted text mighthighlight on both users' screens, and so on, but forms submittedtypically would only be submitted by the selecting user without engagingthe selected user or his machine. That is, it would essentially look asif the selecting user was sharing his/her screen with the selected user.

In some embodiments, if there are no users that fulfill the contactcriteria in step 210, the user can set up an “alert” function, such thatshe is notified when another user browses the same web page, even if theuser is currently not browsing the page. In order not to get too manynotifications, it is also possible for the user to set a threshold valuefor when a notification will occur, such as a specific time period(e.g., within the next 10 minutes), or when a particular desirabilityscore is reached (e.g. 2 or 3).

As the skilled reader realizes, there are potential privacy issuesinvolved with tracking what web pages various users visit andselectively distributing this information to other users. For thisreason, some embodiments can incorporate a variety of mechanisms toprotect the individual users' privacy. For example, as was describedabove, in several embodiments a user has an option of choosing whethertheir browsing information should be made available to other users ornot. This can be done on an “all or nothing” basis, or on a morefine-grained basis, such as, the user's information is only shared whenvisiting specific web pages. Such fine-grained control makes it possiblefor users to choose what pages are acceptable to discuss or be contactedabout, while avoiding topics or web pages in which the user is notinterested in discussing. Yet another level of privacy can be providedby allowing users to choose how their identity will be displayed in thesub-menus (502; 602) to other users. For example, in some embodimentsthe users can choose to have their true name displayed, their useridentifiers, or simply some kind of generic identifier, such as “UserX.” As a result, some users may feel more comfortable discussing certaintopics while hiding their true identity behind some acronym.

Furthermore, given the varying content on the Internet, as the skilledreader realizes, the various embodiments described herein can be usedfor a variety of purposes, such as discussing or reviewing products,restaurants, hotels, planning travel, discussing articles, sharingparenting advice, studying foreign languages (e.g., reading a text inFrench and having a follow-up discussion between the teacher and thestudent), or collaborating on various web-based projects.

The invention can be implemented in digital electronic circuitry, or incomputer hardware, firmware, software, or in combinations of them.Apparatus of the invention can be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a programmable processor; and method steps of the inventioncan be performed by a programmable processor executing a program ofinstructions to perform functions of the invention by operating on inputdata and generating output. The invention can be implementedadvantageously in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. Each computer program can be implemented ina high-level procedural or object-oriented programming language, or inassembly or machine language if desired; and in any case, the languagecan be a compiled or interpreted language. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, a processor will receive instructions and data from aread-only memory and/or a random access memory. Generally, a computerwill include one or more mass storage devices for storing data files;such devices include magnetic disks, such as internal hard disks andremovable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM disks. Any of the foregoing canbe supplemented by, or incorporated in, ASICs (application-specificintegrated circuits).

To provide for interaction with a user, the invention can be implementedon a computer system having a display device such as a monitor or LCDscreen for displaying information to the user. The user can provideinput to the computer system through various input devices such as akeyboard and a pointing device, such as a mouse, a trackball, amicrophone, a touch-sensitive display, a transducer card reader, amagnetic or paper tape reader, a tablet, a stylus, a voice orhandwriting recognizer, or any other well-known input device such as, ofcourse, other computers. The computer system can be programmed toprovide a graphical user interface through which computer programsinteract with users.

Finally, the processor optionally can be coupled to a computer ortelecommunications network, for example, an Internet network, or anintranet network, using a network connection, through which theprocessor can receive information from the network, or might outputinformation to the network in the course of performing theabove-described method steps. Such information, which is oftenrepresented as a sequence of instructions to be executed using theprocessor, may be received from and outputted to the network, forexample, in the form of a computer data signal embodied in a carrierwave. The above-described devices and materials will be familiar tothose of skill in the computer hardware and software arts.

It should be noted that the present invention employs variouscomputer-implemented operations involving data stored in computersystems. These operations include, but are not limited to, thoserequiring physical manipulation of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. The operations described hereinthat form part of the invention are useful machine operations. Themanipulations performed are often referred to in terms, such as,producing, identifying, running, determining, comparing, executing,downloading, or detecting. It is sometimes convenient, principally forreasons of common usage, to refer to these electrical or magneticsignals as bits, values, elements, variables, characters, data, or thelike. It should remembered however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities.

The present invention also relates to a device, system or apparatus forperforming the aforementioned operations. The system may be speciallyconstructed for the required purposes, or it may be a general-purposecomputer selectively activated or configured by a computer programstored in the computer. The processes presented above are not inherentlyrelated to any particular computer or other computing apparatus. Inparticular, various general-purpose computers may be used with programswritten in accordance with the teachings herein, or, alternatively, itmay be more convenient to construct a more specialized computer systemto perform the required operations.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, other dimensions or types of information can be tracked, suchas a user's geographical location based on her IP address. This may beuseful, since it is likely that a local user is more familiar with, say,a particular local store or restaurant than a user who is locatedseveral thousands of miles away and may only have visited the store orrestaurant a single time. Similarly, other factors, such as educationalor professional background, input voluntarily by a user, can be used asa criterion for selecting what user names to display in the toolbar. Forexample, it is more likely that a person with a background in computerscience can provide better information or recommendations about aparticular computer model or a computer store than a person with littleor no knowledge of computers, who just happens to be browsing the sameweb page at the same time. Users can also elect to be tracked based onvarious demographic properties.

The various embodiments have been described in the context of a toolbarinstalled in a web browser. However, it should be noted that the sameideas can be implemented in a number of ways. For example, a web browsercan display a frame that is dedicated for interaction with other users,as described above, and which accompanies the user across all web sitesthat the user visits. The communication between the users have beendescribed with reference to instant messaging systems, but it shouldalso be clear that there are other types of communications that would bepossible. For example, many instant messaging systems allow users tocommunicate by voice, similar to a telephone call, if their computersare equipped with the appropriate audio devices. Such audiocommunications would also be feasible in accordance with the variousembodiments described herein. In some embodiments, a user can decidethat only known users should be displayed, as opposed to both known andunknown users. Accordingly, other embodiments are within the scope ofthe following claims.

1. A computer-implemented method for initiating communication between two users among a plurality of users while the plurality of users are browsing web pages, the method comprising: collecting user information about each user among the plurality of users, using a toolbar installed in a web browser in each user's computer; collecting page information using the toolbars, the page information including one or more of: information about what web page each user among the plurality of users is browsing, and what web pages each user among the plurality of users has bookmarked; determining whether a first user and a second user among the plurality of users are simultaneously browsing one of: a same web site, a same sub-site of a web site, or a same web page of a web site; in response to determining that the first and second users are simultaneously browsing one of: a same web site, a same sub-site of a web site, or a same web page of a web site, and further in response to determining that a predetermined criterion is met: providing an indication to the first user when the second user is actively browsing one or more of: a web page bookmarked by the second user, a sub-site of a web site containing a web page bookmarked by the second user, or a web site containing a web page bookmarked by the second user; providing an indication to the second user when the first user is actively browsing one or more of: a web page bookmarked by the first user, a sub-site of a web site containing a web page bookmarked by the first user, or a web site containing a web page bookmarked by the first user; sharing a portion of the user information and page information for the first user and the second user between the first user and the second user; and processing a request by the first user to initiate communication with the second user.
 2. The method of claim 1, wherein collecting user information includes collecting one or more of: a user name, an Internet Protocol address, and an email address.
 3. The method of claim 1, wherein collecting page information includes collecting a name of a Uniform Resource Locator for the web page.
 4. The method of claim 1, wherein the plurality of users correspond to all users using the toolbar in their respective web browsers.
 5. The method of claim 1, wherein the predetermined criterion is that the first user and the second user have given permission to contact each other.
 6. The method of claim 1, wherein sharing a portion of the user information and the page information includes one or more of: providing an identifier of the first user in the second user's web browser and providing an identifier of the second user in the first user's web browser.
 7. The method of claim 6, wherein the identifier of the first user is provided in a drop-down menu of a toolbar installed in the second user's web browser and the identifier of the second user is provided in a drop-down menu of a toolbar installed in the first user's web browser.
 8. The method of claim 6, wherein sharing a portion of the user information and the page information further includes one or more of: providing a mechanism for the first user to send an instant message to the second user, and providing a mechanism for the second user to send an instant message to the first user.
 9. A computer program product, stored on a machine-readable storage device, for initiating communication between two users among a plurality of users while the plurality of users are browsing web pages, comprising instructions operable to cause a computer to: collect user information about each user among the plurality of users, using a toolbar installed in a web browser in each user's computer; collect page information using the toolbars, the page information including one or more of: information about what web page each user among the plurality of users is browsing and what web pages each user among the plurality of users has bookmarked; determine whether a first user and a second user among the plurality of users are simultaneously browsing one of: a same web site, a same sub-site of a web site, or a same web page of a web site; in response to determining that the first and second users are simultaneously browsing one of: a same web site, a same sub-site of a web site, or a same web page of a web site, and further in response to determining that a predetermined criterion is met: provide an indication to the first user when the second user is actively browsing or more of: a web page bookmarked by the second user, a sub-site of a web site containing a web page bookmarked by the second user, or a web site containing a web page bookmarked by the second user; provide an indication to the second user when the first user is actively browsing or more of: a web page bookmarked by the first user, a sub-site of a web site containing a web page bookmarked by the first user, or a web site containing a web page bookmarked by the first user; share a portion of the user information page information for the first user and the second user between the first user and the second user; and process a request by the first user to initiate communication with the second user.
 10. The computer program product of claim 9, wherein the instructions to collect user information include instructions to collect one or more of: a user name, an Internet Protocol address, and an email address.
 11. The computer program product of claim 9, wherein the instructions to collect page information include instructions to collect a name of a Uniform Resource Locator for the web page.
 12. The computer program product of claim 9, wherein the plurality of users correspond to all users using the toolbar in their respective web browsers.
 13. The computer program product of claim 9, wherein the predetermined criterion is that the first user and the second user have given permission to contact each other.
 14. The computer program product of claim 9, wherein the instructions to share a portion of the user information and the page information include one or more of: instructions to provide an identifier of the first user in the second user's web browser and instructions to provide an identifier of the second user in the first user's web browser.
 15. The computer program product of claim 14, wherein the identifier of the first user is provided in a drop-down menu of a toolbar installed in the second user's web browser and the identifier of the second user is provided in a drop-down menu of a toolbar installed in the first user's web browser.
 16. The computer program product of claim 14, wherein the instructions to share a portion of the user information and the page information further include one or more of: instructions to provide a mechanism for the first user to send an instant message to the second user, and instructions to provide a mechanism for the second user to send an instant message to the first user.
 17. The computer program product of claim 9, further comprising instructions to: collect information about what web pages each user among the plurality of users has bookmarked; and provide an indication to the first user when the first user is actively browsing a web page bookmarked by the second user; and provide an indication to the second user when the second user is actively browsing a web page bookmarked by the first user.
 18. A computer system for initiating communication between two users among a plurality of users while the plurality of users are browsing web pages, the system comprising: a plurality of computers, wherein at least two of the computers in the plurality of computers each includes a web browser application allowing a user to browse web pages; and a computer network connecting the plurality of computers, wherein the web browser applications are further operable to: collect user information about each user among the plurality of users, using a toolbar installed in a web browser in each user's computer; collect page information using the toolbars, the page information including one or more of: information about what web page each user among the plurality of users is browsing and what web pages each user among the plurality of users has bookmarked; determine whether a first user and a second user among the plurality of users are simultaneously browsing one of: a same web site, a same sub-site of a web site, or a same web page of a web site; in response to determining that the first and second users are simultaneously browsing one of: a same web site, a same sub-site of a web site, or a same web page of a web site, and further in response to determining that a predetermined criterion is met: provide an indication to the first user when the second user is actively browsing one or more of: a web page bookmarked by the second user, a sub-site of a web site containing a web page bookmarked by the second user, or a web site containing a web page bookmarked by the second user; provide an indication to the second user when the first user is actively browsing one or more of: a web page bookmarked by the first user, a sub-site of a web site containing a web page bookmarked by the first user, or a web site containing a web page bookmarked by the first user; share a portion of the user information page information for the first user and the second user between the first user and the second; and process a request by the first user to initiate communication with the second user.
 19. The computer system of claim 18, wherein the predetermined criterion is that the first user and the second user have given permission to contact each other. 